﻿namespace Infrastructure.Model
{
    /// <summary>
    /// 文件中心选项
    /// </summary>
    public class FileCenterOption
    {
        // 私有字段，存储文件中心的基础URL
        private string _FileCenterUrl;

        // 公开属性，FileCenter的应用Id
        public string AppId { get; set; }

        // 公开属性，FileCenter的访问密钥
        public string AccessKey { get; set; }

        // 公开属性，获取或设置文件中心的基础URL
        // 获取时，确保URL以"http://"开头并移除尾部的斜杠 '/'
        public string FileCenterUrl
        {
            get
            {
                _FileCenterUrl = (_FileCenterUrl.StartsWith("http://") ? _FileCenterUrl : ("http://" + _FileCenterUrl));
                _FileCenterUrl = _FileCenterUrl.TrimEnd('/');
                return _FileCenterUrl;
            }
            set
            {
                _FileCenterUrl = value;
            }
        }

        // 公开属性，设置单个文件的最大尺寸限制，默认值为50MB
        public int MaxSizeMBPerFile { get; set; } = 50;

        // 公开属性，获取MinIO相关信息的接口URL，默认值为"api/File/GetMinioInfo"
        public string GetMinioUrl { get; set; } = "api/File/GetMinioInfo";
        // 内部属性，存储MinIO服务的URL
        internal string MinioUrl { get; set; }
        // 内部属性，存储MinIO服务的用户名
        internal string Username { get; set; }
        // 内部属性，存储MinIO服务的密码
        internal string Password { get; set; }
    }
}
